#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
//谓词
//概念：
//1、返回bool类型的仿函数称为谓词
//2、如果operator()接受一个参数，那么叫做一元谓词
//3、如果operator()接受两个参数，那么叫做二元谓词

//一元谓词
class greaterFive {
public:
    bool operator()(int val) {
        return val > 5;
    }
};

void test() {
    vector<int> v;
    for (int i = 0; i < 10; ++i) {
        v.push_back(i);
    }

    //查找容器中有没有大于5的数字
    vector<int>::iterator it = find_if(v.begin(), v.end(), greaterFive());
    if (it == v.end()) {
        cout << "没找到" << endl;
    } else {
        cout << "找到：" << *it << endl;
    }
}

int main() {
    test();
    return 0;
}